﻿using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace NTmdb.TestProject
{
    /// <summary>
    ///     This is a test class for TmdbPersonCreditsTest and is intended
    ///     to contain all TmdbPersonCreditsTest Unit Tests
    /// </summary>
    [TestClass]
    public class TmdbPersonCreditsTest
    {
        /// <summary>
        ///     A test for TmdbPersonCredits Constructor
        /// </summary>
        [TestMethod]
        public void TmdbPersonCreditsConstructorTest()
        {
            var target = new TmdbPersonCredits();
            Assert.IsNotNull( target );
        }

        /// <summary>
        ///     A test for Cast
        /// </summary>
        [TestMethod]
        public void CastTest()
        {
            var target = new TmdbPersonCredits();
            var expected = new List<TmdbCastCredit>();
            target.Cast = expected;
            var actual = target.Cast;
            Assert.AreSame( expected, actual );
        }

        /// <summary>
        ///     A test for Crew
        /// </summary>
        [TestMethod]
        public void CrewTest()
        {
            var target = new TmdbPersonCredits();
            var expected = new List<TmdbCrewCredit>();
            target.Crew = expected;
            var actual = target.Crew;
            Assert.AreSame( expected, actual );
        }

        /// <summary>
        ///     A test for Id
        /// </summary>
        [TestMethod]
        public void IdTest()
        {
            var target = new TmdbPersonCredits();
            int expected = new Random().Next( 0, Int32.MaxValue );
            int actual;
            target.Id = expected;
            actual = target.Id;
            Assert.AreEqual( expected, actual );
        }

        /// <summary>
        ///     A test for Serialize & Deserialize
        /// </summary>
        [TestMethod]
        public void SerializeDeserializeTest()
        {
            Assert.Inconclusive();
        }
    }
}